/*
 * ECARX Technology Limited is the owner of the copyright and the trade secret of this software.
 * Without permission, no one has the right to obtain, disclose or use this software in any way.
 */

package com.ecarx.systemui.plugin.model

import android.car.hardware.property.CarPropertyManager.CarPropertyEventCallback

interface IBaseProperty<T> {
    val mPropertyId: Int
    suspend fun isAvailable(area: Int): Boolean
    suspend fun getValue(area: Int): T
    suspend fun <T> setValue(value: T, area: Int)
    suspend fun registerCallback(callback: CarPropertyEventCallback)
    suspend fun unRegisterCallback(callback: CarPropertyEventCallback)
}